home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Magazine / Online / QMail / source / trigger.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-09-26  |  930 b   |  59 lines

  1. #include "select.h"
  2. #include "trigger.h"
  3. #ifndef __amigaos__
  4. #include "open.h"
  5. #include "hasnpbg1.h"
  6. static int fd = -1;
  7. #ifdef HASNAMEDPIPEBUG1
  8. static int fdw = -1;
  9. #endif
  10. #else /* if __amigaos__ */
  11. #include <dos/dos.h>
  12. #endif /* __amigaos__ */
  13.  
  14. void trigger_set()
  15. {
  16. #ifndef __amigaos__
  17.  if (fd != -1)
  18.    close(fd);
  19. #ifdef HASNAMEDPIPEBUG1
  20.  if (fdw != -1)
  21.    close(fdw);
  22. #endif
  23.  fd = open_read("lock/trigger");
  24. #ifdef HASNAMEDPIPEBUG1
  25.  fdw = open_write("lock/trigger");
  26. #endif
  27. #endif /* ! __amigaos__ */
  28. }
  29.  
  30. void trigger_selprep(nfds,rfds)
  31. int *nfds;
  32. fd_set *rfds;
  33. {
  34. #ifndef __amigaos__
  35.  if (fd != -1)
  36.   {
  37.    FD_SET(fd,rfds);
  38.    if (*nfds < fd + 1) *nfds = fd + 1;
  39.   }
  40. #endif
  41. }
  42.  
  43. #ifndef __amigaos__
  44. int trigger_pulled(rfds)
  45. fd_set *rfds;
  46. {
  47.  if (fd != -1) if (FD_ISSET(fd,rfds)) return 1;
  48.  return 0;
  49. }
  50. #else
  51. int trigger_pulled (unsigned long signals)
  52. {
  53.   if (signals & SIGBREAKF_CTRL_D)
  54.     return 1;
  55.   else
  56.     return 0;
  57. }
  58. #endif
  59.